package com.sprouting.ops.model;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.OrderBy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * model基础信息
 * 自动更新：https://baomidou.com/guides/auto-fill-field/
 *
 * @author ：LX（长沙麓谷）
 * @date 创建时间： 2022/8/25 15:47
 */
@Data
public class BaseModel implements Serializable {

    /**
     * 数据创建时间
     * 默认的排序字段，创建时间倒序
     */
    @OrderBy
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 数据更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
    /**
     * 数据更新人ID
     * @see com.sprouting.ops.model.OpsUser#getId()
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateId;
    /**
     * 数据创建人ID
     * @see com.sprouting.ops.model.OpsUser#getId()
     */
    @TableField(fill = FieldFill.INSERT)
    private String createId;
    /**
     * 数据是否有效
     * 调用mp会带上默认的逻辑删除
     * @see com.sprouting.ops.interfaces.ConstantBase.DelType
     */
    @TableLogic
    @TableField(fill = FieldFill.INSERT)
    private Integer delType;

}
